package com.xlh.dao.user.ext;

import com.xlh.dto.user.ClassCourseDTO;
import com.xlh.dto.user.CourseClassDTO;
import com.xlh.pojo.user.ClassCourse;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 班级课程
 * <p>
 * Created by lx on 2019/1/29.
 */
public interface ClassCourseMapperExt {

    /**
     * 根据课程id和结课状态和年级，判断当前课程未删除的教授的班级
     *
     * @param courseIds 课程id集合
     * @param ended     结课状态
     * @param grade     年级
     * @param name      班级名称
     * @param ids       班级id集合
     * @return
     */
    List<ClassCourseDTO> listClassCourse(@Param("courseIds") List<Long> courseIds, @Param("ended") Boolean ended,
                                         @Param("grade") String grade, @Param("name") String name,
                                         @Param("ids") List<Long> ids);
    List<String> listClassCourseOther(@Param("courseId") Long courseId,
                                         @Param("classId") Long classId);
    /**
     * 获取教师的所有班级
     *
     * @param ended    结课状态
     * @param userId   教师id
     * @param courseId 课程id
     * @param classId  班级id
     * @return
     */
    List<ClassCourse> listTeacherClass(@Param("ended") Boolean ended, @Param("userId") Long userId,
                                       @Param("courseId") Long courseId, @Param("classId") Long classId);

    /**
     * 获取课程下的学生id集合
     *
     * @param courseIds 课程id集合
     * @return
     */
    List<CourseClassDTO> queryUserClass(@Param("courseIds") List<Long> courseIds);

    /**
     * 批量添加
     *
     * @param courseIds 课程id集合
     * @param classId   班级id
     */
    void insertBatch(@Param("courseIds") List<Long> courseIds, @Param("classId") Long classId);

}
